iT邦幫忙

2025 iThome 鐵人賽

DAY 21
0
自我挑戰組

用 Discord Bot 玩轉 DevOps系列 第 21

用BOT自動發 changelog(4)-部署(2)

  • 分享至 

  • xImage
  •  

昨天在部署時遇到了兩個問題導致頻頻失敗


audioop 模塊在 Render 的 Python 環境中缺失

audioop 是 Python 的標準庫模塊,而問題可能出在於我使用到較舊版本的 discord.py 版本,但經果我多次的修改及嘗試都沒有解決,因此最後決定拿掉語音功能,剛好原本設計的bot就沒有需要此功能

因此我在程式碼中添加以下段落:

import os
os.environ["DISCORD_INSTANCE_NO_VOICE"] = "true"

import discord
from discord.ext import commands

端口的缺失

這個問題是由於我選用的是Web Service部署的服務(只有這個是免費的),而這通常需要端口,我其實應該選用的是Background Worker,但就要付費,因此我採取的措施是添加端口監聽

Step 1:在Render上設置環境變量的位置
https://ithelp.ithome.com.tw/upload/images/20251004/20169329wauPUJlMkW.png
點擊environment

Step 2: 點擊 "Add Environment Variable" 按鈕添加變數
https://ithelp.ithome.com.tw/upload/images/20251004/201693294NVa5dRfh8.png

Step 3: 在程式碼中添加簡單的端口監聽
https://ithelp.ithome.com.tw/upload/images/20251004/20169329dSrQcw4xl7.png

Step 4:在requirements.txt中添加flask依賴

flask>=2.3.0

Step 5 : 接著在本地先測試看看程式碼是否可以運行

python bot.py

接著就可以提交到github並render會自動開始部署
https://ithelp.ithome.com.tw/upload/images/20251004/20169329ljZUmJEwu9.png
這樣就大功告成了,但這個做法有點風險在,日後再嘗試其他更保險的方式,目前暫時先依靠這個方式讓BOT上線


上一篇
用BOT自動發 changelog(3)-部署(1)
下一篇
用BOT自動發 changelog(5)-部署(3)
系列文
用 Discord Bot 玩轉 DevOps25
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言